home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 94 / CD-ROM 94.iso / util / weban / setup.msi / Cabs.w23.cab / report.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2002-11-20  |  23.3 KB  |  609 lines

  1. <?xml version="1.0"?> 
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.  
  4.     <xsl:variable name="ScoreLookup">
  5.       <c score="0" url="Graphics/dash.gif" alttext="Check Not Performed"/>
  6.       <c score="1" url="Graphics/excl_red.gif" alttext="Unable to scan"/>
  7.       <c score="2" url="Graphics/x_red.gif" alttext="Check failed (critical)"/>
  8.       <c score="3" url="Graphics/x_gold.gif" alttext="Check failed (non-critical)"/>
  9.       <c score="4" url="Graphics/astrx.gif" alttext="Best practice"/>
  10.       <c score="5" url="Graphics/chek_grn.gif" alttext="Check passed"/>
  11.       <c score="6" url="Graphics/dash.gif" alttext="Check not performed"/>
  12.       <c score="7" url="Graphics/info.gif" alttext="Additional information"/>
  13.  
  14.     </xsl:variable>
  15.     
  16.     <xsl:variable name="Assessment">
  17.       <c score="1" text="Incomplete Scan" longtext="Could not complete one or more requested checks."/>
  18.       <c score="2" text="Severe Risk" longtext="One or more critical checks failed."/>
  19.       <c score="3" text="Potential Risk" longtext="One or more non-critical checks failed."/>
  20.       <c score="4" text="Security FYIs" longtext=""/>
  21.       <c score="5" text="Strong Security" longtext="All checks were passed."/>
  22.     </xsl:variable>
  23.  
  24.     <xsl:variable name="FileName" select="'file name here'"></xsl:variable>
  25.     
  26.     <!-- The outermost tag -->
  27.     <xsl:template match="SecScan">
  28.  
  29.         <!-- Add the report header information in a table -->
  30.         <xsl:param name="assess" select="@Grade"/>    
  31.         <table>
  32.         <tr>
  33.             <td class="reportsubheader" width="200">Computer name:</td>
  34.             <td><xsl:value-of select="@Domain"/>\<xsl:value-of select="@Machine"/></td>
  35.         </tr>
  36.         <tr>
  37.             <td class="reportsubheader" width="200">IP address:</td>
  38.             <td><xsl:value-of select="@IP"/></td>
  39.         </tr>
  40.         <tr>
  41.             <td class="reportsubheader" width="200">Security report name:</td>
  42.             <td><xsl:value-of select="$FileName" /></td>
  43.         </tr>
  44.         <tr>
  45.             <td class="reportsubheader" width="200">Scan date:</td>
  46.              <xsl:choose>
  47.               <xsl:when test="@LDate">
  48.                 <td><xsl:value-of select="@LDate"/></td>
  49.               </xsl:when>
  50.               <xsl:otherwise>
  51.                 <td><xsl:value-of select="@Date"/></td>
  52.               </xsl:otherwise>
  53.             </xsl:choose>        
  54.         </tr>
  55.         <xsl:if test="@MbsaToolVersion">
  56.               <tr>
  57.                 <td class="reportsubheader" width="200">Scanned with MBSA version:</td>
  58.                 <td><xsl:value-of select="@MbsaToolVersion"/>
  59.                 <xsl:if test="NewerVersions/@MbsaVer"><b>  ** Newer version <xsl:value-of select="NewerVersions/@MbsaVer"/> is available **</b></xsl:if>
  60.                 </td>
  61.             </tr>
  62.         </xsl:if>
  63.         <xsl:if test="not(@MbsaToolVersion)">
  64.               <tr>
  65.                 <td class="reportsubheader" width="200">Scanned with MBSA version: </td>
  66.                 <td>1.0    <xsl:if test="NewerVersions/@MbsaVer"><b>  ** Newer version <xsl:value-of select="NewerVersions/@MbsaVer"/> is available **</b></xsl:if>
  67.                 </td>
  68.             </tr>
  69.         </xsl:if>
  70.         <xsl:if test="@HotfixDataVersion">
  71.               <tr>
  72.                 <td class="reportsubheader" width="200">Security update database version:</td>
  73.                 <td><xsl:value-of select="@HotfixDataVersion"/>
  74.                 <xsl:if test="NewerVersions/@XmlVer"><b>  ** Newer version <xsl:value-of select="NewerVersions/@XmlVer"/> is available **</b></xsl:if>
  75.                 </td>
  76.             </tr>
  77.         </xsl:if>
  78.         <tr>
  79.             <td class="reportsubheader" width="200">Security assessment:</td>
  80.             <td><xsl:value-of select="document('')/*/xsl:variable[@name='Assessment']/c[@score=$assess]/@text"/><xsl:text> </xsl:text>(<xsl:value-of select="document('')/*/xsl:variable[@name='Assessment']/c[@score=$assess]/@longtext"/>)</td>
  81.         </tr>
  82.         
  83.         <xsl:choose>
  84.         <xsl:when test="Check[@ID='125']">
  85.             <tr>
  86.                 <td colspan="2" class="reportsubheader">
  87.                     <br />
  88.                     This computer is running Windows .NET Server. This version of Windows is not officially supported in this release.
  89.                     <br />
  90.                 </td>
  91.             </tr>    
  92.         </xsl:when>
  93.         </xsl:choose>
  94.         </table>
  95.         
  96.         <!-- Security Update (hotfix) section -->
  97.         <xsl:choose>
  98.         <xsl:when test="Check[@Type='5']">
  99.             <br />
  100.             <div class="reportheader">Security Update Scan Results</div>
  101.             <br />
  102.             <xsl:choose>
  103.             <xsl:when test="Check[@Type='5'][@Cat='1']">
  104.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  105.                     <tr class="ReportListHeader">
  106.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  107.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  108.                         <td class="ReportListHeader">Result</td>
  109.                     </tr>
  110.                     <xsl:for-each select=".">
  111.                         <xsl:apply-templates select="Check[@Type='5'][@Cat='1']">
  112.                             <xsl:sort order="sortorder" select="sortfield"/>
  113.                             <xsl:sort select="@Rank"/>
  114.                         </xsl:apply-templates>
  115.                     </xsl:for-each>
  116.                 </table>            
  117.             </xsl:when>
  118.             </xsl:choose>
  119.         </xsl:when>
  120.         </xsl:choose>
  121.         
  122.         
  123.         <!-- Windows (OS) section -->
  124.         <xsl:choose>
  125.         <xsl:when test="Check[@Type='1']">
  126.             <br />
  127.             <div class="reportheader">Windows Scan Results</div>
  128.             <xsl:choose>
  129.             <xsl:when test="Check[@Type='1'][@Cat='1']">
  130.                 <br />
  131.                 <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Vulnerabilities</div>
  132.                 <br />
  133.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  134.                     <tr class="ReportListHeader">
  135.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  136.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  137.                         <td class="ReportListHeader">Result</td>
  138.                     </tr>
  139.                     <xsl:for-each select=".">
  140.                         <xsl:apply-templates select="Check[@Type='1'][@Cat='1']">
  141.                             <xsl:sort order="sortorder" select="sortfield"/>
  142.                             <xsl:sort select="@Rank"/>
  143.                         </xsl:apply-templates>
  144.                     </xsl:for-each>
  145.                 </table>            
  146.             </xsl:when>
  147.             </xsl:choose>
  148.             <xsl:choose>
  149.             <xsl:when test="Check[@Type='1'][@Cat='2']">
  150.                 <br />
  151.                 <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Additional System Information</div>
  152.                 <br />
  153.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  154.                     <tr class="ReportListHeader">
  155.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  156.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  157.                         <td class="ReportListHeader">Result</td>
  158.                     </tr>
  159.                     <xsl:for-each select=".">
  160.                         <xsl:apply-templates select="Check[@Type='1'][@Cat='2']">
  161.                             <xsl:sort select="@Rank"/>
  162.                         </xsl:apply-templates>
  163.                     </xsl:for-each>
  164.                 </table>
  165.             </xsl:when>
  166.             </xsl:choose>
  167.         </xsl:when>
  168.         </xsl:choose>
  169.  
  170.         <!-- IIS section -->
  171.         <xsl:choose>
  172.         <xsl:when test="Check[@Type='3']">    
  173.             <br />
  174.             <div class="reportheader">Internet Information Services (IIS) Scan Results</div>
  175.             <xsl:choose>
  176.             <xsl:when test="Check[@Type='3'][@Cat='1']">
  177.                 <br />
  178.                 <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Vulnerabilities</div>
  179.                 <br />
  180.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  181.                     <tr class="ReportListHeader">
  182.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  183.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  184.                         <td class="ReportListHeader">Result</td>
  185.                     </tr>
  186.                     <xsl:for-each select=".">
  187.                         <xsl:apply-templates select="Check[@Type='3'][@Cat='1']">
  188.                             <xsl:sort order="sortorder" select="sortfield"/>
  189.                             <xsl:sort select="@Rank"/>
  190.                         </xsl:apply-templates>
  191.                     </xsl:for-each>
  192.                 </table>            
  193.             </xsl:when>
  194.             </xsl:choose>
  195.             <xsl:choose>
  196.             <xsl:when test="Check[@Type='3'][@Cat='2']">
  197.                 <br />
  198.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Additional System Information</div>
  199.                 <br />
  200.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  201.                     <tr class="ReportListHeader">
  202.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  203.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  204.                         <td class="ReportListHeader">Result</td>
  205.                     </tr>
  206.                     <xsl:for-each select=".">
  207.                         <xsl:apply-templates select="Check[@Type='3'][@Cat='2']">
  208.                             <xsl:sort order="sortorder" select="sortfield"/>
  209.                             <xsl:sort select="@Rank"/>
  210.                         </xsl:apply-templates>
  211.                     </xsl:for-each>
  212.                 </table>
  213.             </xsl:when>
  214.             </xsl:choose>
  215.         </xsl:when>
  216.         </xsl:choose>
  217.         <xsl:choose>
  218.  
  219.         <!-- IIS Not Installed section -->
  220.         <xsl:when test="Check[@Type='3'][@Cat='4']">
  221.             <br />
  222.             <table width="100%" border="0" cellpadding="4" cellspacing="0">
  223.                     <tr class="ReportListHeader">
  224.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  225.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  226.                         <td class="ReportListHeader">Result</td>
  227.                     </tr>
  228.                 <xsl:for-each select=".">
  229.                     <xsl:apply-templates select="Check[@Type='3'][@Cat='4']">
  230.                         <xsl:sort order="sortorder" select="sortfield"/>
  231.                         <xsl:sort select="@Rank"/>
  232.                     </xsl:apply-templates>
  233.                 </xsl:for-each>
  234.             </table>
  235.         </xsl:when>
  236.         </xsl:choose>
  237.             
  238.  
  239.         <!-- One tag per SQL Instance, MBSA V1.1 and later -->
  240.         <xsl:choose>
  241.             <xsl:when test="SQLInstance">
  242.             <br />
  243.             <div class="reportheader">SQL Server Scan Results</div>
  244.                 <xsl:for-each select=".">
  245.                     <xsl:apply-templates select="SQLInstance"/>
  246.                 </xsl:for-each>
  247.             </xsl:when>
  248.         </xsl:choose>
  249.  
  250.  
  251.         <!-- SQL Checks, all instances, MBSA V1.0 only -->
  252.         <xsl:choose>
  253.             <xsl:when test="Check[@Type='2']">    
  254.                 <br />
  255.                 <div class="reportheader">SQL Server Scan Results</div>
  256.                 <xsl:choose>
  257.                     <xsl:when test="Check[@Type='2'][@Cat='1']">
  258.                         <br />
  259.                         <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Vulnerabilities</div>
  260.                         <br />
  261.                         <table width="100%" border="0" cellpadding="4" cellspacing="0">
  262.                             <tr class="ReportListHeader">
  263.                                 <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  264.                                 <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  265.                                 <td class="ReportListHeader">Result</td>
  266.                             </tr>
  267.                             <xsl:for-each select=".">
  268.                                 <xsl:apply-templates select="Check[@Type='2'][@Cat='1']">
  269.                                     <xsl:sort order="sortorder" select="sortfield"/>
  270.                                     <xsl:sort select="@Rank"/>
  271.                                 </xsl:apply-templates>
  272.                             </xsl:for-each>
  273.                         </table>            
  274.                     </xsl:when>
  275.                 </xsl:choose>
  276.                 <xsl:choose>
  277.                     <xsl:when test="Check[@Type='2'][@Cat='2']">
  278.                         <br />
  279.                             <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Additional System Information</div>
  280.                         <br />
  281.                         <table width="100%" border="0" cellpadding="4" cellspacing="0">
  282.                             <tr class="ReportListHeader">
  283.                                 <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  284.                                 <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  285.                                 <td class="ReportListHeader">Result</td>
  286.                             </tr>
  287.                             <xsl:for-each select=".">
  288.                                 <xsl:apply-templates select="Check[@Type='2'][@Cat='2']">
  289.                                     <xsl:sort order="sortorder" select="sortfield"/>
  290.                                     <xsl:sort select="@Rank"/>
  291.                                 </xsl:apply-templates>
  292.                             </xsl:for-each>
  293.                         </table>
  294.                     </xsl:when>
  295.                 </xsl:choose>
  296.             </xsl:when>
  297.         </xsl:choose>
  298.  
  299.  
  300.         <!-- SQL not installed -->
  301.         <xsl:choose>
  302.             <xsl:when test="Check[@Type='2'][@Cat='4']">
  303.                 <br />
  304.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  305.                         <tr class="ReportListHeader">
  306.                             <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  307.                             <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  308.                             <td class="ReportListHeader">Result</td>
  309.                         </tr>
  310.                     <xsl:for-each select=".">
  311.                         <xsl:apply-templates select="Check[@Type='2'][@Cat='4']">
  312.                             <xsl:sort order="sortorder" select="sortfield"/>
  313.                             <xsl:sort select="@Rank"/>
  314.                         </xsl:apply-templates>
  315.                     </xsl:for-each>
  316.                 </table>
  317.             </xsl:when>
  318.         </xsl:choose>
  319.             
  320.         <!-- Desktop Section -->
  321.         <xsl:choose>
  322.         <xsl:when test="Check[@Type='4']">    
  323.             <br />
  324.             <div class="reportheader">Desktop Application Scan Results</div>
  325.             <xsl:choose>
  326.             <xsl:when test="Check[@Type='4'][@Cat='1']">
  327.                 <br />
  328.                 <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Vulnerabilities</div>
  329.                 <br />
  330.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  331.                     <tr class="ReportListHeader">
  332.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  333.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  334.                         <td class="ReportListHeader">Result</td>
  335.                     </tr>
  336.                     <xsl:for-each select=".">
  337.                         <xsl:apply-templates select="Check[@Type='4'][@Cat='1']">
  338.                             <xsl:sort order="sortorder" select="sortfield"/>
  339.                             <xsl:sort select="@Rank"/>
  340.                         </xsl:apply-templates>
  341.                     </xsl:for-each>
  342.                 </table>            
  343.             </xsl:when>
  344.             </xsl:choose>
  345.             <xsl:choose>
  346.             <xsl:when test="Check[@Type='4'][@Cat='2']">
  347.                 <br />
  348.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Additional System Information</div>
  349.                 <br />
  350.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  351.                     <tr class="ReportListHeader">
  352.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  353.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  354.                         <td class="ReportListHeader">Result</td>
  355.                     </tr>
  356.                     <xsl:for-each select=".">
  357.                         <xsl:apply-templates select="Check[@Type='4'][@Cat='2']">
  358.                             <xsl:sort select="@Rank"/>
  359.                         </xsl:apply-templates>
  360.                     </xsl:for-each>
  361.                 </table>
  362.             </xsl:when>
  363.             </xsl:choose>
  364.         </xsl:when>
  365.         </xsl:choose>    
  366.  
  367.  
  368.     </xsl:template>
  369.     
  370.  
  371.     <!-- SQL Instance section -->
  372.     <xsl:template match="SQLInstance">
  373.         <br />
  374.         <div class="reportsubheader" style="MARGIN-LEFT: 2px;">Instance <xsl:value-of select="@Name"/></div>
  375.         <xsl:choose>
  376.             <xsl:when test="Check[@Type='2'][@Cat='1']">
  377.                 <br />
  378.                 <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Vulnerabilities</div>
  379.                 <br />
  380.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  381.                     <tr class="ReportListHeader">
  382.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  383.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  384.                         <td class="ReportListHeader">Result</td>
  385.                     </tr>
  386.                     <xsl:for-each select=".">
  387.                         <xsl:apply-templates select="Check[@Type='2'][@Cat='1']">
  388.                             <xsl:sort order="sortorder" select="sortfield"/>
  389.                             <xsl:sort select="@Rank"/>
  390.                         </xsl:apply-templates>
  391.                     </xsl:for-each>
  392.                 </table>            
  393.             </xsl:when>
  394.         </xsl:choose>
  395.         <xsl:choose>
  396.             <xsl:when test="Check[@Type='2'][@Cat='2']">
  397.                 <br />
  398.                     <div class="reportsubheader" style="MARGIN-LEFT: 5px;">Additional System Information</div>
  399.                 <br />
  400.                 <table width="100%" border="0" cellpadding="4" cellspacing="0">
  401.                     <tr class="ReportListHeader">
  402.                         <td class="ReportListHeader" style="WIDTH:60" align="center" valign="middle">Score</td>
  403.                         <td class="ReportListHeader" style="WIDTH:40" align="left">Issue</td>
  404.                         <td class="ReportListHeader">Result</td>
  405.                     </tr>
  406.                     <xsl:for-each select=".">
  407.                         <xsl:apply-templates select="Check[@Type='2'][@Cat='2']">
  408.                             <xsl:sort order="sortorder" select="sortfield"/>
  409.                             <xsl:sort select="@Rank"/>
  410.                         </xsl:apply-templates>
  411.                     </xsl:for-each>
  412.                 </table>
  413.             </xsl:when>
  414.         </xsl:choose>
  415.     </xsl:template>
  416.  
  417.  
  418.  
  419.     <!-- For an individual Check -->
  420.     <xsl:template match="Check">
  421.         <xsl:param name="score" select="@Grade"/>
  422.     
  423.             <xsl:variable name="DetailURL">
  424.             <xsl:choose>
  425.                 <!-- Handle hotfix details -->
  426.                 <xsl:when test="@Type=5">
  427.                     <xsl:choose>
  428.                     <xsl:when test="@Instance">javascript:OpenDetails('<xsl:value-of select="@ID"/>',true, '<xsl:value-of select="@Instance"/>')</xsl:when>
  429.                     <xsl:otherwise>javascript:OpenDetails('<xsl:value-of select="@ID"/>',true, '')</xsl:otherwise>
  430.                     </xsl:choose>
  431.                 </xsl:when>
  432.                 <!-- Handle SQL Instance details -->
  433.                 <xsl:when test="@Type=2">
  434.                     <xsl:choose>
  435.                     <xsl:when test="../../SQLInstance">javascript:OpenDetails('<xsl:value-of select="@ID"/>', false, '<xsl:value-of select="../@Name"/>')</xsl:when>
  436.                     <xsl:otherwise>javascript:OpenDetails('<xsl:value-of select="@ID"/>',false, '')</xsl:otherwise>
  437.                     </xsl:choose>
  438.                 </xsl:when>
  439.                 <!-- Handle all other details -->
  440.                 <xsl:otherwise>javascript:OpenDetails('<xsl:value-of select="@ID"/>',false, '')</xsl:otherwise>
  441.             </xsl:choose>
  442.             </xsl:variable>        
  443.         
  444.             <xsl:variable name="classname">
  445.             <xsl:choose>
  446.                 <xsl:when test="(position() mod 2) = 1">ReportsRowOverEven</xsl:when>
  447.                 <xsl:otherwise>ReportsRowOverOdd</xsl:otherwise>
  448.             </xsl:choose>
  449.             </xsl:variable>
  450.             <tr class="{$classname}">
  451.                 <td align="center" valign="middle">
  452.                     <xsl:choose>
  453.                       <xsl:when test="@Cat='2'">
  454.                         <xsl:choose>
  455.                           <xsl:when test="@ID='121'">
  456.                             <img alt="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@alttext}" src="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@url}" />
  457.                            </xsl:when>
  458.                           <xsl:when test="@ID='10121'">
  459.                             <img alt="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@alttext}" src="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@url}" />
  460.                            </xsl:when>
  461.                           <xsl:when test="@ID='101'">
  462.                             <img alt="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@alttext}" src="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@url}" />
  463.                            </xsl:when>
  464.                           <xsl:when test="@ID='10101'">
  465.                             <img alt="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@alttext}" src="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=7]/@url}" />
  466.                            </xsl:when>
  467.                           <xsl:otherwise>
  468.                             <img alt="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=4]/@alttext}" src="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=4]/@url}" />
  469.                           </xsl:otherwise>
  470.                         </xsl:choose>
  471.                       </xsl:when>
  472.                       <xsl:otherwise>
  473.                         <img alt="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=$score]/@alttext}" src="{document('')/*/xsl:variable[@name='ScoreLookup']/c[@score=$score]/@url}" />    
  474.                       </xsl:otherwise>
  475.                     </xsl:choose>    
  476.                 </td>
  477.                 <td style="WIDTH:75">
  478.                     <TABLE width="100%">  
  479.                       <TR>
  480.                         <TD align="left"><xsl:value-of select="@Name"/></TD>
  481.                       </TR>
  482.                     </TABLE>
  483.                 </td>
  484.                 <td> 
  485.                     <TABLE width="100%">  
  486.                       <TR>
  487.                         <TD align="left" colspan="3"><xsl:value-of select="Advice"/></TD>
  488.                       </TR>
  489.                       <TR>
  490.                       <TD>
  491.                       <TABLE>
  492.                       <TR>
  493.     
  494.                         <xsl:choose>
  495.                             <xsl:when test="$score=5">
  496.                                 <xsl:choose>
  497.                                   <xsl:when test="@URL1">
  498.                                     <TD width="100" NoWrap="true"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" target="_blank" href="{@URL1}">What was scanned</A></TD>                       
  499.                                   </xsl:when>
  500.                                   <xsl:otherwise>
  501.                                     <TD width="100" NoWrap="true"></TD>                       
  502.                                   </xsl:otherwise>
  503.                                 </xsl:choose>                    
  504.                                 <xsl:choose>
  505.                                   <xsl:when test="Detail">
  506.                                     <TD NoWrap="true" width="70"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" href="{$DetailURL}">Result details</A></TD>    
  507.                                   </xsl:when>
  508.                                   <xsl:otherwise>
  509.                                     <TD NoWrap="true" width="70"></TD>    
  510.                                   </xsl:otherwise>
  511.                                 </xsl:choose>            
  512.                                 <xsl:choose>
  513.                                   <xsl:when test="@URL2">
  514.                                     <TD width="120" NoWrap="true"></TD>
  515.                                   </xsl:when>
  516.                                   <xsl:otherwise>
  517.                                     <TD width="120" NoWrap="true"></TD>                       
  518.                                   </xsl:otherwise>
  519.                                 </xsl:choose>                                            
  520.                             </xsl:when>
  521.                             <xsl:when test="$score=0">
  522.                                 <xsl:choose>
  523.                                   <xsl:when test="@URL1">
  524.                                     <TD width="100" NoWrap="true"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" target="_blank" href="{@URL1}">What was scanned</A></TD>                       
  525.                                   </xsl:when>
  526.                                   <xsl:otherwise>
  527.                                     <TD width="100" NoWrap="true"></TD>                       
  528.                                   </xsl:otherwise>
  529.                                 </xsl:choose>                    
  530.                                 <xsl:choose>
  531.                                   <xsl:when test="Detail">
  532.                                     <TD NoWrap="true" width="70"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" href="{$DetailURL}">Result details</A></TD>    
  533.                                   </xsl:when>
  534.                                   <xsl:otherwise>
  535.                                     <TD NoWrap="true" width="70"></TD>    
  536.                                   </xsl:otherwise>
  537.                                 </xsl:choose>            
  538.                                 <xsl:choose>
  539.                                   <xsl:when test="@URL2">
  540.                                     <TD width="120" NoWrap="true"></TD>
  541.                                   </xsl:when>
  542.                                   <xsl:otherwise>
  543.                                     <TD width="120" NoWrap="true"></TD>                       
  544.                                   </xsl:otherwise>
  545.                                 </xsl:choose>                                            
  546.                             </xsl:when>
  547.                             <xsl:when test="$score=6">
  548.                                 <xsl:choose>
  549.                                   <xsl:when test="@URL1">
  550.                                     <TD width="100" NoWrap="true"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" target="_blank" href="{@URL1}">What was scanned</A></TD>                       
  551.                                   </xsl:when>
  552.                                   <xsl:otherwise>
  553.                                     <TD width="100" NoWrap="true"></TD>                       
  554.                                   </xsl:otherwise>
  555.                                 </xsl:choose>                    
  556.                                 <xsl:choose>
  557.                                   <xsl:when test="Detail">
  558.                                     <TD NoWrap="true" width="70"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" href="{$DetailURL}">Result details</A></TD>    
  559.                                   </xsl:when>
  560.                                   <xsl:otherwise>
  561.                                     <TD NoWrap="true" width="70"></TD>    
  562.                                   </xsl:otherwise>
  563.                                 </xsl:choose>            
  564.                                 <xsl:choose>
  565.                                   <xsl:when test="@URL2">
  566.                                     <TD width="120" NoWrap="true"></TD>
  567.                                   </xsl:when>
  568.                                   <xsl:otherwise>
  569.                                     <TD width="120" NoWrap="true"></TD>                       
  570.                                   </xsl:otherwise>
  571.                                 </xsl:choose>                                            
  572.                             </xsl:when>
  573.                             <xsl:otherwise>
  574.                                 <xsl:choose>
  575.                                   <xsl:when test="@URL1">
  576.                                     <TD width="100" NoWrap="true"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" target="_blank" href="{@URL1}">What was scanned</A></TD>                       
  577.                                   </xsl:when>
  578.                                   <xsl:otherwise>
  579.                                     <TD width="100" NoWrap="true"></TD>                       
  580.                                   </xsl:otherwise>
  581.                                 </xsl:choose>                    
  582.                                 <xsl:choose>
  583.                                   <xsl:when test="Detail">
  584.                                     <TD NoWrap="true" width="70"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" href="{$DetailURL}">Result details</A></TD>    
  585.                                   </xsl:when>
  586.                                   <xsl:otherwise>
  587.                                     <TD NoWrap="true" width="70"></TD>    
  588.                                   </xsl:otherwise>
  589.                                 </xsl:choose>            
  590.                                 <xsl:choose>
  591.                                   <xsl:when test="@URL2">
  592.                                     <TD NoWrap="true" width="120"><A class="sys-link-normal" style="PADDING-LEFT: 1px;PADDING-BOTTOM:0px;PADDING-TOP: 0px;PADDING-RIGHT:0px" target="_blank" href="{@URL2}">How to correct this</A></TD>
  593.                                   </xsl:when>
  594.                                   <xsl:otherwise>
  595.                                     <TD width="120" NoWrap="true"></TD>                       
  596.                                   </xsl:otherwise>
  597.                                 </xsl:choose>
  598.                             </xsl:otherwise>
  599.                         </xsl:choose>
  600.                       </TR>
  601.                       </TABLE>
  602.                       </TD>
  603.                       </TR>
  604.                     </TABLE>
  605.                 </td>
  606.             </tr>
  607.     </xsl:template>
  608.  
  609. </xsl:stylesheet>